qmastfandomcom-20200213-history
Arduino
Our History of Arduino After evaluating the microcontroller from 2009/2010, and consultation between professors in the Electrical and Computer Engineering department, the Arduino microcontroller has been selected as an appropriate replacement/substitution to the board previously in use. The possibility that the sailing code will one day exceed the limitations of the Arduino microcontroller has been considered, and for the time being Arduino will be able to handle the code required by our boat. If the time comes that the designed code requires stronger hardware (main limitations of the Arduino is a 16 Mhz), a new microcontroller (or the currently owned one) will be implemented, best case scenario is that at that point, there will be an Arduino controller with a faster clock speed. Arduino Mega The Arduino Mega is the bigger brother of the Arduino Duemilanove, powered by the ATmega1280, sees large improvement through both processing power and physical connections. The ATmega1280 chip, although still powered by a 16 Mhz clock speed, has a four times as much memory as the ATmega168 (Flash Memory, SRAM, EEPROM, Clock Speed) and is connected to roughly four times as many pins, including three additional UARTs. UARTs allow us to take an RS-232 signal, send it through a RS-232 to TTL converter, and connect to the Mega using only TX and RX pins. Additional features include 54 digital I/O pins (14 of which can provide PWM output), 16 analog pins and compatibility with most Arduino shields. Shields allow us to add further functionality to our controller, particularly wireless communication to a land based computer through magic called Zigbee. Serial The Arduino mega has 3 serial ports which are connected to pins, and a 4th which is connected to a USB-B (port 0, 1). http://arduino.cc/en/Reference/Serial. The buffer is 128 bytes long. The speed at which the processor loops will have to empty to buffer fast enough to avoid missing data; or compensate for this (data less frequent, check how much data is in the buffer. SerialX.read() ; X = 1,2,3 (or nothing for the USB-B port) These will be the Zigbee (USB-B), Wind sensor, and Compass. Pololu will not be used? (comment?) Communication with Computer (via Zigbee) http://arduino.cc/en/Guide/Environment this talks about the board resetting with receipt of serial data through the serial monitor. (look into this later) With the old microprocessor TS-7260, a COM1 connection had complete control over the microprocessor, ie rebooting, etc. NOW with the Arduino, there is likely not reboot functioning via COM port, selecting a program, other functionality * Arduino has a reset pin that when triggered acts just like the physical reset button. This pin was designed for boards whose reset button is blocked by shields (as ours will be with the Xbee expansion) * Triggering this reset pin will reboot Arduino into the "loop" function (main program) therefore a menu program would be suitable and from there we would be able to launch specific programs * menu program becomes CRITICAL * test what functionality X-CTU and mini-com have with Serial.read() from Zigbee to Arduino Can also add additional serial port channels through software (which will not have a buffer to store data, best for output ie Pololu) http://www.arduino.cc/en/Reference/SoftwareSerial Installing Arduino on Linux If you need to install Arduino on Linux, go here: http://www.arduino.cc/playground/Learning/Linux =External Links= List of Hardware options Tutorials Arduino emulator, emulino Breadboard design software, apparently has a programmable arduino Blog post about arduino emulators Waspmote, a zigbee module for arduino Category:Hardware Category:Software